package gameengine;

import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;

/**
 * Representa uma imagem
 * @author Victor
 */
public final class Textura
{
	private BufferedImage _imagem;

	public Textura(String filePath)
	{
		try
		{
			_imagem = ImageIO.read(new File(filePath));
		}
		catch(IOException err)
		{
			err.printStackTrace();
		}
	}

	/**
	 * Retorna o objeto BufferedImage que essa textura utiliza
	 * @owner Victor
	 */
	public BufferedImage GetBufferedImage()
	{
		return _imagem;
	}

	/**
	 * Retorna a dimensão da imagem
	 * @owner Victor
	 */
	public Dimension GetDimension()
	{
		return new Dimension(_imagem.getWidth(), _imagem.getHeight());
	}

	/**
	 * Redimensiona a imagem
	 * @owner Victor
	 */
	public BufferedImage Particionar(int x, int y, int width, int height)
	{
		return _imagem.getSubimage(x, y, width, height);
	}

	/**
	 * Redimensiona a imagem
	 * @owner Victor
	 */
	public BufferedImage Particionar(Rectangle rectangle)
	{
		return Particionar(rectangle.x, rectangle.y, rectangle.width, rectangle.height);
	}
}
